package com.itheima.health.dao;

import com.github.pagehelper.Page;
import com.itheima.health.pojo.Menu;

import java.util.List;

/**
 * @Author ： ZAG WELL
 * @Date : 2020/12/4
 */
public interface MenuDao {

    /**
     * 查询该用户首级菜单列表
     * @param username
     * @return
     */
    List<Menu> getHeadMenuByUsername(String username);


    /**
     * 递归调用通过父母菜单id查询子菜单
     * @param parentId
     * @return
     */
    List<Menu> findMenuByParentId(Integer parentId);


    /**
     * 分页查询
     * @param queryString
     * @return
     */
    Page<Menu> findByCondition(String queryString);

    /**
     * 获取父菜单
     * @param parentMenuId
     * @return
     */
    Menu findByParentMenuId(Integer parentMenuId);

    /**
     * 获取子菜单集合
     * @param parentMenuId
     * @return
     */
    List<Menu> findChildByParent(Integer parentMenuId);

    void add(Menu menu);

    /**
     * 获取一级菜单集合
     * @return
     */
    List<Menu> findParentMenu();

    /**
     * 数据回显
     * @param id
     * @return
     */
    Menu findById(int id);

    void update(Menu menu);

    /**
     * 获取该菜单项被角色应用的次数
     * @param id
     * @return
     */
    int findCountByMenuId(int id);

    /**
     * 获取该菜单的子菜单次数
     * @param id
     * @return
     */
    int findChildCountByParent(int id);

    void deleteById(int id);
}
